#pragma once

#include "Tile.h"
#include "types.h"
#include "viewport.h"
#include "config.h"

class IMap
{
public:
	virtual ~IMap();

	void DrawMap(const ViewPort &view);

	Tile* GetTile(uint x, uint y);

protected:
	virtual void m_create() = 0;
	void m_drawtile(const ViewPort &view,uint x, uint y);
	void m_delete();
	boost::array<Tile*,_SIZEMAP*_SIZEMAP> m_tile;
};

class Map : public IMap
{
public:
	Map();
protected:
	virtual void m_create();
};

class GlobalMap : public IMap
{
public:
	GlobalMap();
protected:
	virtual void m_create();
};

